iT邦幫忙

DAY 18
16

我愛吃蘋果系列 第 18

 [iPhone程式設計 之 iT邦幫忙 App] NSString之substring 

  • 分享至 

  • xImage
  •  

那Objective-C怎麼切字串呢?
NSString類別裡,總共有三種切字串的方法

    • (NSString *)substringFromIndex:(NSUInteger)anIndex
    • (NSString *)substringToIndex:(NSUInteger)anIndex
    • (NSString *)substringWithRange:(NSRange)aRange

看了範例,你就了解它們的用法囉~

    NSString *str = @"1234567890";
    NSLog(@"Original String: %@", str);
    NSLog(@"substringFromIndex: 5 ==> %@", [str substringFromIndex:5]);
    NSLog(@"substringToIndex: 5 ==> %@", [str substringToIndex:5]);
    NSLog(@"substringWithRange: from 7, length 3 ==> %@", [str substringWithRange:NSMakeRange(7, 3)]);

執行結果:

Original String: 1234567890
substringFromIndex: 5 ==> 67890
substringToIndex: 5 ==> 12345
substringWithRange: from 7, length 3 ==> 890

substringWithRange用法跟其它的程式語言有點不太一樣,得先用NSMakeRange函式建立一個NSRange的物件,裡面有兩個參數,第一個是位置,第二個是長度。

學會了切字串後,那該如何找到我們要的字串位置呢?其它程式語言大部份把這個方法取名為 indexOf,但在Objective-C裡它叫

- (NSRange)rangeOfString:(NSString *)aString

用法如下:

    NSRange range = [str rangeOfString:@"567"];
    NSLog(@"where is 567? they locate from %d", range.location);

執行結果:

 where is 567? they locate from 4

這樣會了嗎?這個方法其實回傳的是個NSRange物件(正確來說是結構struct),裡面的location才是我們要的位置

如果找不到你所傳入的字串的話,這個方法會回傳一個
{NSNotFound, 0}

所以要判斷有沒有找到你要的字串,可以判斷location是否為NSNotFound,或是length是否為0。


上一篇
 [iPhone程式設計 之 iT邦幫忙 App] HTML pa不成,那還有最後的絕招~ 
下一篇
 [iPhone程式設計 之 iT邦幫忙 App] 認識 UIWebView 
系列文
我愛吃蘋果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
thc
iT邦研究生 5 級 ‧ 2010-10-30 20:58:25

沒有每一篇都看的話,應該不會知道是在說 iPhone程式設計吧
希望每篇都特別註明一下
antijava 的標題就很醒目了
[iPhone程式開發]02-作業環境

他有介紹作業環境,不知道 你的環境又是如何

jackychu iT邦新手 3 級 ‧ 2010-10-30 22:53:34 檢舉

的確,標題得明確一點
至於環境沒啥影響吧?! 就一台Mac + XCode,不會相差到哪去
這就是封閉系統的「好處?」Orz

thc iT邦研究生 5 級 ‧ 2010-10-31 11:37:14 檢舉

因為我沒有mac 啊,只有windows,所以也沒辦法跟著練習囉

0
zpolice
iT邦新手 5 級 ‧ 2023-01-18 18:27:40

抄簡中資訊用詞也改個用詞吧...這麼明顯

我要留言

立即登入留言